home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 004 / flashcrd.arc / FLASHCRD.BAS (.txt)
Encoding:
GW-BASIC  |  1986-05-03  |  6.6 KB  |  238 lines

  1. 10  :
  2. 20  REM *********************************
  3. 30  :
  4. 40  REM *  PROGRAMED BY JEFF SCHUNICHT  *
  5. 50  :
  6. 60  REM *          5-12-1983            *
  7. 70  :
  8. 80  REM *       FOR THE  I B M          *
  9. 90  :
  10. 100  '  *     PERSONAL COMPUTER         *
  11. 110  :
  12. 120  '  *********************************
  13. 130  KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 4,7:PRINT "A JEFF SCHUNICHT PROGRAM "
  14. 140  LOCATE 7,13:PRINT "FOR THE I B M ":LOCATE 9,11:PRINT "PERSONAL COMPUTER"
  15. 150  COLOR 10,0:LOCATE 13,8,0:PRINT CHR$(201)+STRING$(21,205)+CHR$(187)
  16. 155  LOCATE 14,8,0:PRINT CHR$(186)+"     FLASH CARD      "+CHR$(186)
  17. 160  LOCATE 15,8,0:PRINT CHR$(186)+STRING$(21,32)+CHR$(186)
  18. 170  LOCATE 16,8,0:PRINT CHR$(186)+"    Version 1.00     "+CHR$(186)
  19. 180  LOCATE 17,8,0:PRINT CHR$(200)+STRING$(21,205)+CHR$(188)
  20. 200  COLOR 18,0:LOCATE 23,6,0:PRINT "Press space bar to continue"
  21. 210  KY$=INKEY$
  22. 220  IF KY$="" THEN GOTO 210
  23. 230  IF KY$<>" " THEN GOTO 210
  24. 240  CLS:CLEAR:SCREEN 1,0:COLOR  0,0
  25. 250  RANDOMIZE (VAL(MID$(TIME$,2,1))*4+VAL(MID$(TIME$,5,2))*3+VAL(MID$(TIME$,8,1)))
  26. 260  SCREEN 1
  27. 270  TROFF
  28. 280  COLOR 0,4
  29. 290  KEY OFF
  30. 350  'YOU CAN CHANGE THE LEVEL HERE BY JUST CHANGING LINES 360 & 390
  31. 360  PRINT "LEVEL (1-10) OR ENTER A ZERO TO QUIT"
  32. 365  INPUT "ENTER LEVEL HERE:  ",LEV
  33. 370  TAAB=1
  34. 380  CLS
  35. 390  IF LEV<1 OR LEV>10 THEN GOTO 5000
  36. 400  PRINT "WOULD YOU LIKE TO MULTIPLY,DIVIDE,ADD,OR SUBTRACT (ONLY THE FIRST LETTER)";
  37. 410  SIGN$=INKEY$:IF SIGN$="" THEN GOTO 410
  38. 420  LEV1=LEV
  39. 430  CLS
  40. 440  AZ$=SIGN$
  41. 450  IF AZ$="A" OR AZ$="a" THEN SIGN=1 :GOTO 500
  42. 460  IF AZ$="S" OR AZ$="s" THEN SIGN =2:GOTO 500
  43. 470  IF AZ$="M" OR AZ$="m" THEN SIGN =3:GOTO 500
  44. 480  IF AZ$="D" OR AZ$="d" THEN SIGN =4 :GOTO 500
  45. 490  CLS:GOTO 400
  46. 500  LEV=(LEV+1)^2+1
  47. 510  FOR MMM=1 TO 8
  48. 520  NUM1=INT(RND(1)*LEV)
  49. 530  NUM2=INT(RND(1)*LEV)
  50. 540  IF NUM2>NUM1 THEN NUM=NUM1:NUM1=NUM2:NUM2=NUM
  51. 550  IF LEV1<3 THEN GOTO 560:ELSE IF SIGN=1 THEN NUM1=NUM1*3:NUM2=NUM2*3
  52. 560  IF SIGN=2 THEN NUM1=NUM1+NUM2:IF LEV>3 THEN NUM1=NUM1*2
  53. 570  IF SIGN=4 AND NUM2=0 THEN GOTO 530
  54. 580  IF SIGN=4 THEN NUM1=NUM1*NUM2
  55. 590  NUM1$=STR$(NUM1)
  56. 600  LOT=15:TAAB=240-LEN(NUM1$)*35
  57. 610  G=LEN(NUM1$)-2:
  58. 620  Q$=NUM1$
  59. 630  FOR LNGTH=0 TO G
  60. 640  MI$=MID$(NUM1$,LNGTH+2,1)
  61. 650  MID=VAL(MI$):ON MID GOSUB 2000,2090,2150,2230,2290,2370,2450,2510,2560:IF MID=0 THEN GOSUB 2600
  62. 660  NEXT LNGTH
  63. 670  LOT=LOT +50:TAAB=240-(LEN(Q$)+1)*35
  64. 675  IF SIGN=4 THEN TAAB=TAAB+35
  65. 680  ON SIGN GOSUB 2720,2650,2825,2750
  66. 690  NUM2$=STR$(NUM2)
  67. 700  G=LEN(NUM2$)-2
  68. 710  TAAB=240-LEN(NUM2$)*35
  69. 720  FOR LNGTH=0 TO G
  70. 730  MI$=MID$(NUM2$,LNGTH+2,1)
  71. 740  MID=VAL(MI$):ON MID GOSUB 2000,2090,2150,2230,2290,2370,2450,2510,2560:IF MID=0 THEN GOSUB 2600
  72. 750  NEXT LNGTH
  73. 755  LN=200-LEN(Q$)*35
  74. 760  LINE(LN+LEN(Q$)*35,LOT+50)-(LN,LOT+52),2,BF:LOT=LOT+60
  75. 780  LOCATE 1,1:PRINT "PRESS SPACE BAR FOR A DIFFERENT EQUATION"
  76. 785  ANS2$=STR$(ANS2)
  77. 790  TBBB=240-LEN(ANS2$)*35
  78. 800  TAAB=TBBB
  79. 810  REM **** GET ANSWER FROM PLAYER AND CHECK ****
  80. 820  DEF SEG=0:POKE 1050,PEEK(1052)
  81. 830  F$=INKEY$
  82. 835  KEY (12) ON
  83. 840  ON KEY(12) GOSUB 3030
  84. 850  IF F$="" THEN GOTO 830
  85. 860  IF F$=" " THEN TRY=3:ANS=-1:GOTO 1110
  86. 865  IF F$="q" OR F$="Q" THEN CLS:GOTO 280
  87. 870  IF S<1 AND F$=CHR$(13) THEN ANS=-1:GOTO 1050
  88. 880  IF F$="0" AND (ANS2=0 OR S>0) THEN GOTO 950
  89. 890  IF F$=CHR$(13) THEN GOTO 1050
  90. 900  IF F$="0" THEN 830
  91. 920  IF F$<"/" OR F$>":" THEN 830
  92. 930  KEY (12) OFF
  93. 950  REM
  94. 960  PREVTAAB=TAAB
  95. 970  IF S>(LEN(ANS2$)-1) THEN GOTO 1050
  96. 980  S=S+1:F$(S)=F$
  97. 990  F(S)=VAL(F$(S))
  98. 1000  ANN=VAL (F$)
  99. 1010  T(S)=35
  100. 1020  ON ANN GOSUB 2000,2090,2150,2230,2290,2370,2450,2510,2560:IF ANN=0 THEN GOSUB 2600
  101. 1040  GOTO 830
  102. 1050  FOR A = 1 TO S
  103. 1060  ANS=ANS+F(A)*10^(S-A)
  104. 1070  NEXT A
  105. 1071  IF ANS=ANS2 THEN 1120
  106. 1080  LINE (TBBB,LOT+50)-(TAAB +35,LOT),2
  107. 1090  LINE(TBBB,LOT)-(TAAB +35,LOT+50),2
  108. 1100  FOR TTT=1 TO 300:NEXT TTT
  109. 1103  A=1:ANS=0:S=0:FOR Y=1 TO 4:F$(Y)="":F(Y)=0:NEXT Y
  110. 1110  BEEP:LINE (0,LOT)-(319,190),0,BF:TAAB=TBBB:TRY=TRY+1:IF TRY>2 THEN GOSUB 1190:ELSE GOTO 830 REM ERASE ANSWER
  111. 1120  A=1:ANS=0:S=0:FOR Y=1 TO 4:F$(Y)="":F(Y)=0:NEXT:
  112. 1140  FOR HH=1 TO 800:NEXT HH:CLS
  113. 1150  TRY=0:TAAB=TBBB:CLS:NUM1=0:NEXT MMM
  114. 1160  IF WRONG>3 THEN W$="NOT GOOD  ":ELSE W$="VERY GOOD "
  115. 1170  FOR B=1 TO 100:PRINT W$;:NEXT:CLS:PRINT:PRINT "YOU GOT "8-WRONG" OUT OF 8 RIGHT ":FOR DLY=1 TO 600:NEXT DLY:WRONG=0:GOTO 360
  116. 1180  REM **** PRINT CORRECT ANSWER ****
  117. 1190  WRONG=WRONG+1
  118. 1270  IF TAAB>285 THEN TAAB=1:LOT=LOT+50
  119. 1280  G=LEN(ANS2$)-2
  120. 1290  FOR LNGTH=0 TO G
  121. 1300  MI$=MID$(ANS2$,LNGTH+2,1)
  122. 1310  MID=VAL(MI$):ON MID GOSUB 2000,2090,2150,2230,2290,2370,2450,2510,2560:IF MID=0 THEN GOSUB 2600
  123. 1330  NEXT LNGTH
  124. 1390  RETURN
  125. 2000  REM ***** SET UP SHAPE TABLES *****
  126. 2001  XX=TAAB+5:YY=LOT
  127. 2010  LINE (6+XX,YY)-(11+XX,35+YY),1,BF
  128. 2020  LINE (6+XX,YY)-(3+XX,2+YY),1
  129. 2030  LINE (2+XX,2+YY)-(6+XX,2+YY),1
  130. 2040  LINE (XX,35+YY)-(17+XX,40+YY),1,BF
  131. 2050  PAINT (6+XX,6+YY),1,1
  132. 2055  TAAB=TAAB+35
  133. 2060  RETURN
  134. 2090  REM ***** TWO *****
  135. 2091  XX=TAAB:YY=LOT
  136. 2100  LINE (2+XX,0+YY)-(25+XX,5+YY),1,BF
  137. 2110  LINE (20+XX,0+YY)-(25+XX,25+YY),1,BF
  138. 2120  LINE (2+XX,25+YY)-(25+XX,20+YY),1,BF
  139. 2130  LINE (2+XX,25+YY)-(7+XX,35+YY),1,BF
  140. 2140  LINE (2+XX,35+YY)-(25+XX,40+YY),1,BF
  141. 2145  TAAB=TAAB+35
  142. 2146  RETURN
  143. 2150  REM **** THREE ****
  144. 2151  XX=TAAB:YY=LOT
  145. 2160  LINE (XX,0+YY)-(30+XX,5+YY),1,BF
  146. 2170  LINE (0+XX,20+YY)-(30+XX,25+YY),1,BF
  147. 2180  LINE (25+XX,0+YY)-(30+XX,40+YY),1,BF
  148. 2190  LINE (0+XX,35+YY)-(30+XX,40+YY),1,BF
  149. 2191  TAAB=TAAB+35
  150. 2225  RETURN
  151. 2230  REM *** FOUR ****
  152. 2231  XX=TAAB:YY=LOT
  153. 2240  LINE (0+XX,0+YY)-(5+XX,25+YY),1,BF
  154. 2250  LINE (25+XX,0+YY)-(30+XX,40+YY),1,BF
  155. 2260  LINE (5+XX,25+YY)-(25+XX,20+YY),1,BF
  156. 2265  TAAB=TAAB+35
  157. 2286  RETURN
  158. 2290  REM ***** FIVE *******
  159. 2291  XX=TAAB:YY=LOT
  160. 2300  LINE(0+XX,0+YY)-(30+XX,5+YY),1,BF
  161. 2310  LINE(0+XX,15+YY)-(30+XX,20+YY),1,BF
  162. 2320  LINE(0+XX,0+YY)-(5+XX,20+YY),1,BF
  163. 2330  LINE(25+XX,20+YY)-(30+XX,40+YY),1,BF
  164. 2340  LINE(0+XX,35+YY)-(30+XX,40+YY),1,BF
  165. 2345  TAAB=TAAB+35
  166. 2346  RETURN
  167. 2370  REM *** SIX ***
  168. 2371  XX=TAAB:YY=LOT
  169. 2380  LINE(XX,YY)-(30+XX,5+YY),1,BF
  170. 2390  LINE(XX,YY)-(5+XX,25+YY),1,BF
  171. 2400  LINE(XX,20+YY)-(30+XX,40+YY),1,BF
  172. 2410  LINE(5+XX,25+YY)-(25+XX,35+YY),0,BF
  173. 2420  TAAB=TAAB+35
  174. 2430  RETURN
  175. 2450  REM *** SEVEN ***
  176. 2451  XX=TAAB:YY=LOT
  177. 2460  LINE (0+XX,0+YY)-(27+XX,5+YY),1,BF
  178. 2470  LINE (33+XX,YY)-(5+XX,40+YY),1:LINE (25+XX,YY)-(XX,40+YY),1:LINE (XX,40+YY)-(5+XX,40+YY),1:LINE(27+XX,YY)-(33+XX,YY),1
  179. 2480  PAINT (3+XX,39+YY),1,1
  180. 2490  TAAB=TAAB+35
  181. 2498  RETURN
  182. 2510  REM *** EIGHT *****
  183. 2511  XX=TAAB+2:YY=LOT
  184. 2520  LINE (0+XX,0+YY)-(30+XX,40+YY),1,BF
  185. 2530  LINE(5+XX,5+YY)-(25+XX,17+YY),0,BF
  186. 2540  LINE (5+XX,22+YY)-(25+XX,35+YY),0,BF
  187. 2550  TAAB=TAAB+35
  188. 2555  RETURN
  189. 2560  REM **** NINE *****
  190. 2561  XX=TAAB:YY=LOT
  191. 2563  LINE (XX,YY)-(XX+30,YY+40),1,BF:LINE(XX+5,YY+5)-(XX+25,YY+18),0,BF
  192. 2570  LINE (0+XX,22+YY)-(25+XX,40+YY),0,BF
  193. 2580  TAAB=TAAB+35:RETURN
  194. 2600  REM **** ZERO ***
  195. 2601  XX=TAAB+2:YY=LOT
  196. 2610  LINE (0+XX,0+YY)-(30+XX,40+YY),1,BF
  197. 2620  LINE (5+XX,5+YY)-(25+XX,35+YY),0,BF
  198. 2630  TAAB=TAAB+35:RETURN
  199. 2650  REM *** MINUS ***
  200. 2655  XX=TAAB:YY=LOT
  201. 2660  LINE (0+XX,13+YY)-(30+XX,17+YY),2,BF
  202. 2661  ANS2=NUM1-NUM2
  203. 2670  RETURN
  204. 2720  REM *** PLUS ****
  205. 2721  XX=TAAB:YY=LOT
  206. 2730  LINE (13+XX,0+YY)-(17+XX,30+YY),2,BF
  207. 2740  LINE (0+XX,13+YY)-(30+XX,17+YY),2,BF
  208. 2744  ANS2=NUM1+NUM2
  209. 2745  RETURN
  210. 2750  REM DIVIDE
  211. 2751  XX=TAAB:YY=LOT
  212. 2760  LINE (14+XX,5+YY)-(19+XX,10+YY),2,BF
  213. 2765  LINE (XX,YY+16)-(XX+36,YY+21),2,BF
  214. 2770  LINE (14+XX,25+YY)-(19+XX,30+YY),2,BF
  215. 2772  ANS2=NUM1/NUM2
  216. 2773  RETURN
  217. 2781  XX=TAAB:YY=LOT
  218. 2825  REM **** MULTIPLY
  219. 2826  XX=TAAB:YY=LOT
  220. 2828  FOR B =0 TO 4
  221. 2830  LINE(XX,YY+B)-(25+XX,30+YY+B),2
  222. 2850  LINE(25+XX,YY+B)-(XX,30+YY+B),2
  223. 2860  NEXT
  224. 2870  ANS2=NUM1*NUM2
  225. 3000  RETURN
  226. 3010  REM ***********************
  227. 3020  REM **** GET RID OF LAST NUMBER INPUTED ******
  228. 3030  IF S < 1 THEN RETURN
  229. 3040  S=S-1:LINE(PREVTAAB,LOT)-(TAAB,LOT+40),0,BF
  230. 3050  TAAB=PREVTAAB:PREVTAAB=PREVTAAB-35
  231. 3060  IF LOT >110 AND TAAB <23 THEN LOT = 70:PREVTAAB=TAAB3:TAAB=319
  232. 3070  RETURN
  233. 3080  TAAB=PREVTAAB:PREVTAAB=PREVTAAB-35
  234. 3090  IF LOT >110 AND TAAB <23 THEN LOT = 70:PREVTAAB=TAAB3:TAAB=319
  235. 3100  RETURN
  236. 5000  SCREEN 0:WIDTH 80:COLOR 3,1,1:CLS
  237. 5010  LOCATE 12,25:PRINT"FLASH CARD PRACTICE IS DONE!"
  238.